小编典典

为什么使用 softmax 而不是标准归一化?

all

在神经网络的输出层,通常使用 softmax 函数来近似概率分布:

在此处输入图像描述

由于指数,这计算起来很昂贵。为什么不简单地执行 Z 变换以使所有输出均为正数,然后仅通过将所有输出除以所有输出之和进行归一化?


阅读 170

收藏
2022-03-18

共1个答案

小编典典

标准归一化相比,Softmax 有一个很好的属性。

它以相当均匀的分布对神经网络的低刺激(认为模糊图像)和概率接近 0 和 1 的高刺激(即大量,认为清晰图像)作出反应。

而标准归一化并不关心,只要比例相同。

看看当 soft max 有 10 倍大的输入时会发生什么,即你的神经网络得到了清晰的图像并且很多神经元被激活了

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

然后将其与标准归一化进行比较

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
2022-03-18